package org.demo.algorithm.lagou.column.relearn;

import org.demo.algorithm.common.ListNode;

/**
 * 链表反转
 * 方法一：
 * 使用栈，时间：O(n)、空间O(n)
 * 方法二：
 * 普通循环，需要构建prev、curr、next三个变量，时间：O(n)
 */
public class LinkedReversal {

    public static void reversal(ListNode head) {
        if (null == head) {
            return;
        }
        ListNode prev = null;
        ListNode curr = head;
        ListNode next;
        while (curr != null) {
            next = curr.next;
            curr.next = prev;
            prev = curr;
            curr = next;
        }
    }

}
